; void lista_obtener_primero (nodo_lista_t** l, nodo_lista_t** n)
%include "macros.mac"

%define ptr_ptr_l  [ebp+8]
%define ptr_ptr_n  [ebp+12]
%define offset_sig		4


global lista_obtener_primero



section  .text

lista_obtener_primero:
	convencion_C 0

	mov ebx, dword ptr_ptr_l	; ebx tiene l	
	

	mov esi, dword [ebx]			; [ebx] tiene *l, puntero al primero
					; esi es ptr_primero

	; Hago que *n apunte al primero
	mov edi, dword ptr_ptr_n	; edi tiene n
					; [edi] tiene *n
	mov [edi],esi			; hago *n = ptr_primero

	; Obtengo el puntero al segundo
	mov esi, dword [esi+offset_sig]	; esi tiene ptr_primero->sig

	; Cambio el puntero al primero de la lista
	mov [ebx],esi

	convencion_C_fin 0
	ret
